package city.spring.modules.work.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDate;
import java.util.Date;

/**
 * 实体类：上班计划表（人员上班结果记录）
 *
 * @author 侯坤林
 * @date 2020-06-04 16:43:43
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("work_schedule_item")
public class WorkScheduleItemEntity implements Serializable {

    /**
     * 主键ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 关联的上班计划表ID
     */
    private String workScheduleId;

    /**
     * 关联排班结果班次的ID
     */
    private String workScheduleShiftId;

    /**
     * 上班人
     */
    private String userId;

    /**
     * 上班日期
     */
    private LocalDate date;

    /**
     * 标记是否启用
     */
    private Boolean isEnabled;

    /**
     * 状态（会直接反应到is_enabled字段中，该字段只做回溯跟踪）：
     * 0为正常可用，1为后期新增可用（替班结果状态），2为主动申请调班（不可用），3为被动调班（不可用）
     */
    private Integer status;

    /**
     * 更新次数（乐观锁）
     */
    @Version
    private Integer version;

    /**
     * 创建时间
     */
    @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER)
    private Date gmtCreated;

    /**
     * 更新时间
     */
    @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER)
    private Date gmtModified;

}